// nodejs的内置模块，就是nodejs自己新增的api

// 内置的模块都能从官网找到 https://nodejs.org/docs/latest/api/

// 内置模块的引入(不需要安装)
// 使用require函数进行引入，传入包的名字
// 等号前面可以赋值，这个变量就是包的内容
// 使用require的引入，是一种CommonJs的模块化规范。这是一种同步引入的模块规范

// 如果需要引入内置模块，建议把所有的引入都放在最前面
const dns = require("dns");
// const process = require("process");



// console.log(dns);
// dns.resolve4('www.baidu.com', (err, addresses) => {
//   if (err) throw err;
//   console.log(addresses);  // [ '180.101.51.73', '180.101.49.44' ]
// });

// console.log(process);
// process.on('exit', (code) => {
//   console.log('Process exit event with code: ', code);
// });

// console.log(123);


function getDns(url) {
  return new Promise((resolve, reject) => {
    dns.resolve4(url, (err, addresses) => {
      if (err) {
        reject(err.message)
      };
      resolve(addresses);  // [ '180.101.51.73', '180.101.49.44' ]
    });
  })
}
// getDns('www.baidu.com')
//   .then((res) => {
//     console.log(res)
//     return getDns('www.google.com')
//   })
//   .then((res) => {
//     console.log(res)
//   })
//   .catch(err => {
//     console.log(err)
//   })

const asyncGetDns = async () => {
  try {
    const res = await getDns('www.baidu999999.com');
    console.log(res);
    const res2 = await getDns('www.google.com');
    console.log(res2);
    console.log(123);
  } catch (error) {
    console.log(error);
  }
}
asyncGetDns()



